package com.shop.cereshop.app.service.recommend;


import com.shop.cereshop.app.page.recommend.CereRecommendCommentPageVO;
import com.shop.cereshop.app.page.recommend.MyCommentPageVO;
import com.shop.cereshop.app.page.recommend.RecommendCommentVO;
import com.shop.cereshop.app.param.recommend.*;
import com.shop.cereshop.commons.domain.buyer.CereBuyerUser;
import com.shop.cereshop.commons.domain.common.Page;
import com.shop.cereshop.commons.domain.common.PageParam;
import com.shop.cereshop.commons.exception.CoBusinessException;
import com.shop.cereshop.commons.result.Result;

public interface CereRecommendCommentService {

    CereRecommendCommentPageVO saveComment(RecommendCommentSaveParam param);

    void deleteComment(Long recommendCommentId) throws CoBusinessException;

    Page<CereRecommendCommentPageVO> commentPage(RecommendCommentPageParam param);

    CereRecommendCommentPageVO commentTop(RecommendCommentPageParam param);

    Integer getUnreadCount(Long userId);

    Page<MyCommentPageVO> myMessage(MyCommentPageParam param);

    Boolean getCommentStatus(Long recommendCommentId);

    Result saveRecommendComment(RecommendCommentAddDTO param, CereBuyerUser  user) throws CoBusinessException;

    Page<RecommendCommentVO> getRecommendCommentPage(Integer page, Integer pageSize, Long recommendId, Long parentCommentId, CereBuyerUser user);

    void removeByRecommendId(Long recommendId);
}
